Разширено разделяне на код в JavaScript: Маршрутно-базирано срещу Компонентно-базирано | MLOG | MLOG

В този пример компонентът MyComponent се зарежда лениво, когато MyPage се рендира. Това гарантира, че кодът на MyComponent се зарежда само ако потребителят действително го види или взаимодейства с него.

Примерен сценарий: Помислете за глобална платформа за електронно обучение. Страницата на даден курс може да има интерактивни елементи като тестове или 3D модели. Компонентно-базираното разделяне на код може да зареди кода за тези елементи само когато студентът се ангажира с тях, което води до по-бързо първоначално зареждане на страницата.

Angular

Въпреки че Angular основно използва модулно-базирано лениво зареждане, можете да постигнете разделяне на код на ниво компонент, като използвате динамични импорти в рамките на вашите компоненти.

            
// my.component.ts
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-my',
  templateUrl: './my.component.html',
  styleUrls: ['./my.component.css']
})
export class MyComponent implements OnInit {

  dynamicComponent: any;

  async ngOnInit() {
    this.dynamicComponent = await import('./dynamic/dynamic.component').then(m => m.DynamicComponent);
  }

}

            
            
// my.component.html

  


            

Този подход зарежда DynamicComponent само когато MyComponent се инициализира. Това може да се комбинира с маршрутно-базирано зареждане за подобрена производителност.

Примерен сценарий: Уебсайт на мултинационална банка може да има сложен формуляр за кандидатстване за кредит. Компонентно-базираното разделяне на код може да зарежда кода за конкретни секции от формуляра (напр. проверка на доходите, трудова история) само когато потребителят достигне до тези секции, оптимизирайки потребителското изживяване.

Vue.js

Vue.js предлага подобна на React гъвкавост за компонентно-базирано разделяне на код чрез динамични импорти. Това се прави в обекта `components` на Vue компонент.

            




            

Тук `AsyncComponent.vue` ще бъде зареден само когато `MyPage` се рендира.

Примерен сценарий: Глобален уебсайт за резервации на пътувания може да зарежда интерактивни карти или виртуални обиколки на дестинации при поискване, само когато потребителят кликне върху конкретно място. Това прави уебсайта по-отзивчив и лесен за използване.

Предимства на компонентно-базираното разделяне на код

Недостатъци на компонентно-базираното разделяне на код

Избор на правилния подход

Най-добрият подход за разделяне на код зависи от специфичните характеристики на вашето приложение:

Инструменти и техники

Няколко инструмента и техники могат да ви помогнат да приложите ефективно разделянето на код:

Съображения за глобална аудитория

При разработването на уеб приложения за глобална аудитория е важно да се вземат предвид фактори като мрежова латентност, ограничения на честотната лента и възможностите на устройствата в различните региони. Разделянето на код може да играе ключова роля в справянето с тези предизвикателства:

Добри практики

За да увеличите максимално ползите от разделянето на код, следвайте тези добри практики:

Заключение

Разделянето на код е мощна техника за оптимизиране на производителността и потребителското изживяване на уеб приложенията. Като разбирате различните подходи (маршрутно-базиран срещу компонентно-базиран) и ги прилагате ефективно, можете значително да намалите първоначалното време за зареждане, да подобрите производителността по време на работа и да създадете по-ангажиращо изживяване за вашите потребители, независимо от тяхното местоположение или устройство. Възползвайте се от разделянето на код и отключете пълния потенциал на вашите JavaScript приложения в днешния конкурентен дигитален пейзаж.